package com.bweab.service.impl;

import com.bweab.dao.api.UserTbDaoInterface;
import com.bweab.dao.impl.UsersTbDaoImpl;
import com.bweab.pojo.UsersTb;
import com.bweab.service.api.UsersTbServiceInterface;
import com.bweab.util.JSONResult;
import com.bweab.util.JSONStats;
import com.bweab.util.PageList;

/**
 * 用户信息服务接口的定义
 * */
public class UsersTbServiceInterfaceImpl implements UsersTbServiceInterface {
    UserTbDaoInterface  usersDao=new UsersTbDaoImpl();

    /**
     *
     * @param username 用户名
     * @return 返回的结果是user对象
     */
    @Override
    public UsersTb getUserInfo(String username) {
        //调用DAO层接口
        UsersTb user= usersDao.getUserInfo(username);
        return user;
    }

    /**
     * 用户注册
     * @param username 用户名
     * @param userpassword //用户密码
     * @param userSex  用户性别
     * @param userXh  用户学号
     * @param userPhone 用户电话
     * @return  影响行数
     * */
    @Override
    public int regist(String username, String userpassword, String userSex, String userXh, String userPhone) {

        int row=  usersDao.insertUser(username,userpassword,userSex,userXh,userPhone);


        return row;
    }
/**
 * @param userName 用户名
 * @param userPhone 用户电话
 * @param userXh    用户学号
 * @param userSex   用户性别
 *
 * 该方法用于修改用户信息
 * */

    @Override
    public int alterUserInfo(String userName, String userPhone, String userXh, String userSex) {
        int row = usersDao.alterUserInfo(userName,userSex,userPhone,userXh);
        return row;
    }

    /**
     * 修改用户密码
     * @param username 用户名字
     * @param userpassword 用户密码
     * @return 返回的影响结果 1成功 0失败
     */
    @Override
    public int alterUserPwd(String username, String userpassword) {

        int row =usersDao.alterUserPwd(username,userpassword);
        return row;
    }



    /**
     * 管理员增加用户的服务
     * @param username  用户名字
     * @param userPhone  用户电话
     * @param userStatus  用户状态
     * @param userXh   用户学号
     * @param userSex  用户性别
     * @param userpassword 用户密码
     * @return  1成功  0 失败
     */
    @Override
    public JSONResult adminAddUser(String username, String userPhone, String userStatus, String userXh, String userSex, String userpassword) {
        //创建JSONResult返回结果
        JSONResult jsonResult =new JSONResult();
       int rows = usersDao.adminAddUser(username,userPhone,userStatus,userXh,userSex,userpassword) ;
       if(rows>0){

           //添加成功
           jsonResult.setMessage(JSONStats.ADMIN_ADD_USER_SUCCESS.getMessage());
           jsonResult.setStatusCode(JSONStats.ADMIN_ADD_USER_SUCCESS.getStatusCode());
       }else {
            //添加事变
           //添加成功
           jsonResult.setMessage(JSONStats.ADMIN_ADD_USER_ERROR.getMessage());
           jsonResult.setStatusCode(JSONStats.ADMIN_ADD_USER_ERROR.getStatusCode());

       }
        return jsonResult ;
    }


    /**
     * 管理员查询用户信息
     * @param username  用户名
     * @return 返回结果为用户信息
     */
    @Override
    public JSONResult AdminQueryUserInfoByName(String username) {

        //创建结果对象
        JSONResult jsonResult =new JSONResult();
        UsersTb userInfo = usersDao.getUserInfo(username);
        if(userInfo.getUserName()!=null){
            //成功
            jsonResult.setMessage(JSONStats.QUERY_SUCCESS.getMessage());
            jsonResult.setStatusCode(JSONStats.QUERY_SUCCESS.getStatusCode());
            jsonResult.setData(userInfo);

        }else {
            //失败
            jsonResult.setMessage(JSONStats.QUERY_ERROR.getMessage());
            jsonResult.setStatusCode(JSONStats.QUERY_ERROR.getStatusCode());
            jsonResult.setData(jsonResult);


        }

        return jsonResult;
    }

    /**
     * 管理员修改用户信息
     * @param userName 用户名
     * @param userPassword 用户密码
     * @param userSex 用户性别
     * @param userXh 用户学号
     * @param userStatus 用户状态
     * @param userPhone 用户电话
     * @return jsonResult
     */
    @Override
    public JSONResult adminAlterUserInfo(String userName, String userPassword, String userSex, String userXh, String userStatus, String userPhone) {
        //调用服务层
        int rows= usersDao.adminAlterUserInfo(userName,userPassword,userSex,userXh,userStatus,userPhone);
        //创建返回结果
        JSONResult jsonResult =new JSONResult();
        if(rows>0){
            //成功
            jsonResult.setMessage(JSONStats.USER_ALTER_OK.getMessage());
            jsonResult.setStatusCode(JSONStats.USER_ALTER_OK.getStatusCode());

        }else {
            //失败
            jsonResult.setMessage(JSONStats.USER_ALTER_ERROR.getMessage());
            jsonResult.setStatusCode(JSONStats.USER_ALTER_ERROR.getStatusCode());

        }
        return jsonResult;
    }

    /**
     * 管理员通过用户id删除用户信息
     * @param userId 用户id
     * @return jsonReuslt
     */
    @Override
    public JSONResult adminDeleteUserInfoByUserId(int userId) {
        //调用dao
        int rows= usersDao.adminDeleteUserInfoByUserId(userId);
        //创建返回结果
        JSONResult jsonResult = new JSONResult();
        if(rows>0){
            jsonResult.setMessage(JSONStats.DELETE_SUCCESS.getMessage());
            jsonResult.setStatusCode(JSONStats.DELETE_SUCCESS.getStatusCode());

        }else {
            //删除失败
            jsonResult.setMessage(JSONStats.DELETE_ERROR.getMessage());
            jsonResult.setStatusCode(JSONStats.DELETE_ERROR.getStatusCode());
        }
        return jsonResult;
    }

    /**
     * 通过用户名删除用户
     * @param userName 用户名
     * @return 返回jsonResult
     */
    @Override
    public JSONResult adminDeleteUserInfoByUserName(String userName) {

        //调用dao
        int rows =  usersDao.adminDeleteUserInfoByUserName(userName);
        //创建返回结果
        JSONResult jsonResult =new JSONResult();
        if(rows>0){
            jsonResult.setMessage(JSONStats.DELETE_SUCCESS.getMessage());
            jsonResult.setStatusCode(JSONStats.DELETE_SUCCESS.getStatusCode());

        }else {
            //删除失败
            jsonResult.setMessage(JSONStats.DELETE_ERROR.getMessage());
            jsonResult.setStatusCode(JSONStats.DELETE_ERROR.getStatusCode());
        }
        return jsonResult;
    }


}
